package com.zs.backend.common.utils;

import java.io.ByteArrayInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class Test {
    public static void main(String[] args) {
        // 假设这里有一个 byte[] 数组 data，表示要转换为 zip 文件的数据

        byte[] data = new byte[]{/* your byte array data here */};

        try {
            // 创建一个临时文件来保存压缩后的数据
            String tempFile = "temp.zip";

            // 使用 ZipOutputStream 将数据写入到临时文件中
            try (ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(tempFile));
                ByteArrayInputStream bais = new ByteArrayInputStream(data)) {

                ZipEntry entry = new ZipEntry("file.txt"); // 这里可以指定压缩文件中的文件名
                zos.putNextEntry(entry);

                byte[] buffer = new byte[1024];
                int len;
                while ((len = bais.read(buffer)) > 0) {
                    zos.write(buffer, 0, len);
                }

                zos.closeEntry();
            }

            // 下载压缩文件
            // 这里可以根据具体的情况，使用框架或原生 Servlet 进行文件下载操作

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}
